java - 将 foreach 重构为 for 循环
全部标签 我有两个数组,available_items和requested_items。我想从requested_items中删除available_items中缺少的元素。使用forEach显然不会给出预期的结果,因为即使删除一个元素并且下一个元素将具有旧索引,内部索引也会增加。这是一个测试用例(也在thisjsbin中):varavailable_items=[2,5,9,36,48,23];varrequested_items=[5,12,49,30,90,17];requested_items.forEach(function(v,i,a){if(available_items.inde
这段代码会无限运行,为什么?functionf(n){i=0;if(n==2){while(i如果n!=2函数应该什么都不做如果n等于2函数调用f(0)和f(1)所以它应该在那之后停止但是当你运行它时你只会得到无限循环。谁能说出为什么?编辑函数之外没有任何东西。不需要更好的代码。只问为什么。 最佳答案 你可以通过改变来修复它i=0;到vari=0;您的i变量是全局的(或者至少它的作用域在f之外,所以它被函数的所有调用共享)。当n最初为2时,您进入循环并且此循环总是在递增之前将i重置为0.因此,您的顺序是i=0//startoff//
我现在正在编写一个没有后端ajax的前端。我正在使用angular-mocks来模拟这样的API调用:$httpBackend.when('GET','/somelink').respond(function(method,url,data){//dosomething});但是,如果ajax传递params:{id:12345},它将附加到url为'/somelink?id=12345'。catchwhen('GET','/somelink')有没有办法使用RegEx或一些技巧来解决这个问题?只是为了不管params里面有什么,respond()仍然会被调用?谢谢。更新1:我不能使用
我必须使用nashorn从Java执行一些bashshell命令。我有一个javascript文件:#!/usr/bin/jjsvartestBashMethod=function(name){$EXEC("echoHellofrombash${name}");};testBashMethod("foobar");我有java方法将上面的javascript方法加载到Nashorn引擎中并执行它:publicvoidexecuteScript(){ScriptEngineManagerengineManager=newScriptEngineManager();ScriptEngine
我有一个json数组,我通过ajax调用获取它并想遍历它。该数组输出类别标题和该类别中的一些数据记录。数组如下:{"Travel":[{"title":"Beautifultitle1"},{"title":"Beautifultitle2"},{"title":"Beautifultitle3"}],"Other":[{"title":"Beautifultitle1"}]}像这样的基本每个功能都帮不了我。$.each(data,function(key,value){console.log(value.title);}我希望能够输出主类别标题,并在其下显示数据记录。例如,我希望它看
我是javascript的新手,目前正在学习使用Node.js实现带有MongoDB后端的graphQLAPI。我遇到了两种类型之间循环依赖的问题。基本上,我有一个经典的博客文章/博客作者情况。一篇文章只有一位作者,因此mongoose架构包含对该作者的引用。在我的graphQL类型“作者”中,我想添加一个字段“帖子”,它允许我从作者导航到他们写的所有帖子。该引用未在数据库模型中编码,而是通过Controller检索。这是我的博文代码。vargraphql=require("graphql");varAuthorResolvers=require("../resolvers/autho
基本上在运行时我得到如下数组varcolors=['red','green','blue'];我需要像下面这样构建一个JSON字符串{"color":{"name":"foo","properties":{...}},"green":{"name":"foo","properties":{...}},"blue":{"name":"foo","properties":{...}}}是否有支持循环和控制语句来构建上述JSON字符串的字符串模板框架 最佳答案 Fit.UIs模板引擎简单直观:http://fitui.org/Core-T
我有一个无状态的React组件,如下所示:constpropTypes=exact({fieldId:PropTypes.string.isRequired,text:PropTypes.string.isRequired,});functionLabel({fieldId,text}){return({text});}Label.propTypes=propTypes;我正在使用通过airbnb配置扩展的eslint。我的eslint看起来像这样:{"extends":"airbnb"}我的React代码抛出这个错误:errorFormlabelmusthaveassociatedc
我开始学习javascript,遇到了第一个问题。在任务中,我想执行一个循环,打印用户指定范围内的数字,例如:对于值:2和10,在div中打印:2,3,4,5,6,7,8,9,10.我的代码:functionloopChecking(){'usestrict';varnumberA=document.getElementById("numberA").value,numberB=document.getElementById("numberB").value,i=0,result="";for(i=numberA;i下面是html代码:Loop感谢您的帮助,医学博士。
我编写了一段运行良好的代码。我想要一个新数组,其中包含按orderArr中指定的顺序排列的myArr中的元素。但是,它在另一个for循环中使用for循环来匹配数组元素。varmyArr=['a','b','c','d','e'];varorderArr=['e','c'];varreArr=[];for(vari=0;i我经常听说在另一个for循环中使用for循环是不好的做法,甚至应该避免使用forEach。我还能如何重写这段代码。 最佳答案 我不一定会说在循环中使用循环是一种不好的做法——事实上,OriDrori抢先一步指出这种做